The cable and satellite television industry has experienced explosive growth in recent years. Not surprisingly, the sale and insertion of local and regional advertisements have become a huge source of revenue for cable television system operators that deliver programs to their subscriber customers. In the past, analog video ads were commonly inserted into analog satellite video feeds by the local cable operators. Most often, analog ads were stored on tape and switched into the network feed by analog video switches, with the switching process being triggered by a cue tone sequence on the associated audio feeds delivered together with the video feed and received by a satellite receiver. As more cable systems have been converted to deliver digitally compressed video to the customer's home, cable operators have developed a variety of new technologies for inserting digital advertising content into the digital bitstream.
In the digital realm, video programs are typically encoded into MPEG-2 video streams that are then multiplexed into a Multi-Program Transport Stream (MPTS) that is up-linked to an orbiting satellite. The Society of Cable Television Engineers Standard 35 (SCTE 35) is a cable protocol that supports Digital Program Insertion (DPI) in MPEG-2 streams by defining digital cue tone signals that are inserted in the digital video stream at the “head-end” during the network encoding process. These cue tone messages exist as specific data packets with specific header information. Common cue tone signals include a pre-roll signal, which is sent approximately 5 to 8 seconds before splice time to indicate an upcoming available advertisement time slot (frequently referred to as an “avail”); a start signal, which marks the beginning of the avail and is used to trigger switching from the original video stream into the ad stream; and a stop signal, which occurs at the end of the avail for switching back to the original video stream. In DPI, digital cue tones in the form of Splice Information Tables (SIT) are typically inserted in the transport stream in the uplink and detected by a digital splicer at the local or regional head-end. A cue tone sequence is described in U.S. Pat. No. 5,600,366, which patent teaches digital ad insertion in video programming in which switchovers from network programming to local advertising occurs at packet or frame boundaries upon detection of idle information from a network source.
A conventional system for digital ad insertion is depicted in FIG. 1, which shows a digital video broadcast (DVB) transport stream from a satellite feed with SCTE 35 cue tones flowing into a centralized splicer 11. Splicer 11 also receives an ad transport stream from an ad server 12 that provides digital storage and streaming of various advertisements. Ads are typically selected by server 12 based on avail identification (avail-ID) information and program-ID (“PID”) information carried in the in-stream splice information tables. Control signaling between splicer 11 and ad server 12 is defined by the SCTE 30 standard protocol. An ad management system 13 may also interface with server 12 for handling ad scheduling, management and billing systems. Ad management system 13 may also provide user profiling, demographics and database analysis to determine which ads should be targeted at particular customers or end-users. By way of example, a computer-based method and system for targeting of advertisements and promotions based on past purchase behavior as a predictor of future purchase behavior is described in U.S. Pat. No. 6,735,572.
Splicer 11 performs the function of switching between the original video stream and the ad transport stream based on the information present in the SIT cue signals. In the example shown, for the same input signal, splicer 11 splices two different ads, thereby producing two video output streams containing different targeted ads that are then delivered to the end users (e.g., targeted customer groups 21 and 22) via an Internet Protocol (IP) distribution network 15. Network 15 typically comprises a packet-based transmission medium having a plurality of edge devices (e.g., routers) 16-18 that provides connectivity across a dispersed geographic region.
One of the drawbacks of the conventional system shown in FIG. 1 is that the number of video output streams that can be delivered to different targeted groups is limited by the available bandwidth of distribution network 15. Hence, only a limited amount of targeting can be achieved. In other words, although the centralized architecture shown in FIG. 1 permits some targeting of ads to multiple groups, the problem is that bandwidth consumption places an upper limit on the amount of targeting that can be performed. Alternatively, the same DPI splicers used today in the central head-end location may be distributed to the edge locations of network 15. However, the problem with this approach is that it adds significant cost to the overall system, since expensive splicers are required at multiple edge locations.
Yet another problem with existing DPI systems is that it is often difficult to insure a seamless, high-quality transition into and out of the network stream. The reason for this difficulty lies in the fact that MPEG video streams comprise different types of frames that do not include all of the data to be displayed at any given time. In addition, the resulting stream follows a stringent buffer model. For instance, Inter-frames, or I-frames, are the only type of frame that is not coded with reference to any other frame; P-frames are coded predicatively from a previous I-frame or P-frame; B-frames are coded predicatively from I-frames and P-frames.
One of the complicating factors in the splicing of streams is that in order to be properly decoded, a B-frame associated with a group of pictures (“GOPs”, which usually consist of 15 frames) may need to reference the I-frame of a next GOP. To avoid delays in the decoding process, complex elementary/picture level (i.e., at the MPEG layer) processing of the video stream often times must be performed. That is, expensive low-level processing is required to condition the digital video stream in order to guarantee seamless splicing of ads.
Transport stream level splicing is a digital splicing technique that avoids some of the drawbacks inherent in elementary/picture level splicing. In transport stream level splicing, switching between streams takes place only on transport packet boundaries. Transport packets are typically 188 bytes long. Although this technique is simple and relatively inexpensive, it only works well in certain limited cases, such as well-conditioned streams in which there are no open GOPS, i.e., a GOP having a B-frame that can only be decoded by reference to the I-frame of a next GOP, or when the pictures are perfectly aligned with the packet boundary.
Thus, there remains an unsatisfied need for a new DPI architecture that overcomes the aforementioned problems in the prior art.
By way of further background, U.S. Pat. No. 6,718,553 teaches a system and method for delivery of digital broadcast television programming from a centralized aggregation head-end to subscribers in multiple markets using an interconnected terrestrial fiber optic network. Additionally, U.S. Pat. No. 6,505,169 teaches a method for adaptive ad insertion in streaming multimedia content. A method for splicing data packets of a commercial message into a pre-existing data stream that complies with the MPEG transmission standard is disclosed in U.S. Pat. No. 5,917,830. Finally, U.S. Pat. No. 6,044,081 teaches a hybrid communications system and multimedia system that allows private network signaling to be routed over a packet network.